package com.wjh.anyview.service;

import com.wjh.anyview.entity.bo.userServiceBo.LoginBo;
import com.wjh.anyview.entity.bo.userServiceBo.UserLoginBo;
import com.wjh.anyview.entity.dto.CommonResult;
import com.wjh.anyview.entity.po.User;
import com.wjh.anyview.entity.vo.userControllerVo.InvigilatorVo;

import java.util.List;

/**
 * @author wjh
 * @date 2021/10/9 18:51
 * @Package com.wjh.anyview.service
 */
public interface UserService {
    /**
     * 登陆接口
     *
     * @param loginBo 包含账号密码的包装类
     * @return 登陆结果的BO
     */
    CommonResult<UserLoginBo> login(LoginBo loginBo);

    /**
     * 添加一位新学生
     *
     * @param user 学生的2封装类
     * @return 没有数据返回
     */
    CommonResult<?> saveStudent(User user);

    /**
     * 判断该学工号能否注册
     *
     * @param num 学工号
     * @return 返回判断结果
     */
    boolean registerJudge(String num);

    /**
     * 通过学工号获取年级
     *
     * @param num 学工号
     * @return 返回grade
     */
    CommonResult<Byte> getGradeByNum(String num);

    /**
     * 根据机构id查询监考老师
     *
     * @param institutionId 机构id
     * @return 返回机考老师集合
     */
    CommonResult<List<InvigilatorVo>> listInvigilatorByInstitutionId(Long institutionId);
}
